﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ConexionCliente.Responses;
using ConexionCliente;

namespace Manager
{
    class ServicioCliente : MarshalByRefObject, IServicioCliente
    {
        #region Miembros de IServicioAgente


        public List<ServResponse> ObtenerServidores()
        {
            List<ServResponse> lista = new List<ServResponse>();
            foreach(ServerNode s in Manager.conf.ObtenerServidores()){
                if (s.Vivo)
                    lista.Add(new ServResponse(s.Nombre, s.Identificador));
            }
            return lista;
        }

        public MemoryResponse ObtenerRam(int idServ)
        {
            ServerNode aux = Manager.conf.ObtenerServidor(idServ);
            if (aux != null){
                return new MemoryResponse(float.Parse(aux.RamTotal), float.Parse(aux.RamLibre));
            }
            return null ;
        }

        public DiscoResponse ObtenerDisco(int idServ)
        {
            ServerNode aux = Manager.conf.ObtenerServidor(idServ);
            if (aux != null)
            {
                return new DiscoResponse(long.Parse(aux.DiscoTotal), long.Parse(aux.DiscoLibre));
            }
            return null;
        }

        public CpuResponse ObtenerCPU(int idServ)
        {
            ServerNode aux = Manager.conf.ObtenerServidor(idServ);
            if (aux != null)
            {
                return new CpuResponse(float.Parse(aux.UsoCpu));
            }
            return null;
        }

        #endregion
    }
}
